const mysql = require('mysql')
const config = require('./config').db

console.log('=== 数据库连接检测方法演示 ===\n')

// 方法1: 创建连接时检测
console.log('方法1: 创建连接时检测')
const db1 = mysql.createConnection(config)

db1.connect((err) => {
  if (err) {
    console.log('❌ 连接失败:', err.message)
  } else {
    console.log('✅ 连接成功!')
  }
  db1.end()
})

// 方法2: 使用query检测
console.log('\n方法2: 使用query检测')
const db2 = mysql.createConnection(config)

db2.query('SELECT 1 as test', (err, results) => {
  if (err) {
    console.log('❌ 查询失败:', err.message)
  } else {
    console.log('✅ 查询成功:', results)
  }
  db2.end()
})

// 方法3: 检查连接状态
console.log('\n方法3: 检查连接状态')
const db3 = mysql.createConnection(config)

setTimeout(() => {
  console.log('连接状态:', db3.state)
  if (db3.state === 'authenticated') {
    console.log('✅ 连接已认证')
  } else {
    console.log('❌ 连接未认证，状态:', db3.state)
  }
  db3.end()
}, 1000)

// 方法4: 使用事件监听
console.log('\n方法4: 使用事件监听')
const db4 = mysql.createConnection(config)

db4.on('connect', () => {
  console.log('✅ 连接事件触发')
})

db4.on('error', (err) => {
  console.log('❌ 连接错误:', err.message)
})

setTimeout(() => {
  db4.end()
}, 2000) 